Electronic devices such as electronic book readers (“eBook reader devices”), cellular telephones, portable media players, routers, desktop computers, servers, laptops, tablet computers, netbooks, personal digital assistants, medical devices and the like, rely on microprocessors to function.
Within these electronic devices, a microprocessor may execute instructions stored on a computer-readable storage medium to perform a variety of actions. The computer-readable storage medium may be considered “program memory” and may include volatile memory, non-volatile memory, or a combination of volatile and non-volatile memory. These instructions may include an operating system (“OS”) which provides input/output functions, task scheduling, and so forth, for higher level applications which may be executing.
However, errors may occur which result in a crash, or abrupt halt, of some or all functions in the OS. Whether a crash is a result of a problem with software, hardware, or both, information about the crash may prove useful for support.
Crash information typically is stored in non-volatile memory, such as a magnetic or optical disk, non-volatile random access memory (NVRAM), and so forth to provide persistence across a power cycle. However, many devices either have no or insufficient non-volatile memory available for storing crash information. Furthermore, storage to the non-volatile memory takes significantly longer than storage to volatile memory, introducing a delay in devices which are designed to power cycle and reboot quickly. Thus, there is a need to retain OS crash information in volatile memory across a power cycle.